package com.lg.cms.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lg.cms.entity.TemplateType1;
import com.lg.cms.entity.TemplateTypePath1;
import com.lg.cms.mapper.TemplateType1Mapper;
import com.lg.cms.mapper.TemplateTypePath1Mapper;
import com.lg.cms.service.TemplateTypePath1Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lg.cms.utils.IOTemplateTypeUtil;
import com.lg.cms.vo.LayerTableVO;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 模板， 模板类型， 模板路径多对多表 服务实现类
 * </p>
 *
 * @author lg
 * @since 2020-11-19
 */
@Service
public class TemplateTypePath1ServiceImpl extends ServiceImpl<TemplateTypePath1Mapper, TemplateTypePath1> implements TemplateTypePath1Service {

    @Autowired
    TemplateTypePath1Mapper typePath1Mapper;
    @Autowired
    TemplateType1Mapper type1Mapper;

    /**
     * 根据模板类型id查找所有模板实现类
     * @param id
     * @return
     */
    @Override
    public LayerTableVO<TemplateTypePath1> selectTemplateTypeById(Integer id, Page page) {
        IPage<TemplateTypePath1> iPage=typePath1Mapper.selectPage(page,Wrappers.<TemplateTypePath1>lambdaQuery().eq(TemplateTypePath1::getTemplateTypeId,id));
        LayerTableVO<TemplateTypePath1> layerTableVO=new LayerTableVO<>();
        if (iPage!=null)layerTableVO.setCode(0);
        else layerTableVO.setCode(1);
        layerTableVO.setCount(iPage.getTotal());
        layerTableVO.setData(iPage.getRecords());
        layerTableVO.setMsg("数据为空");
        return layerTableVO;
    }

    /**
     * 添加模板实现类
     * @param templateTypeId
     * @param path
     * @param ftlhText
     * @return
     */
    @Override
    public int addTemplateType(Integer templateTypeId, String path, String ftlhText) {

        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH：mm：ss");//设置日期格式

        TemplateType1 type1=type1Mapper.selectById(templateTypeId);

        path="D:/cms/template"+"/template/"+type1.getAlias()+"/"+type1.getAlias()+df.format(new Date());
        int n=0;
        if (IOTemplateTypeUtil.writeFile(ftlhText,path,type1.getAlias())){
            TemplateTypePath1 typePath1=new TemplateTypePath1();
            typePath1.setTemplateTypeId(type1.getId());
            typePath1.setPath("/template/"+type1.getAlias()+"/"+type1.getAlias()+df.format(new Date())+"/"+type1.getAlias());
            typePath1.setEdition("1.1.10");
            n=typePath1Mapper.insert(typePath1);
        }
        return n;

    }

    /**
     * 根据模板路径读取模板文件实现类
     * @param path
     * @return
     */
    @Override
    public String readTemplateType(String path) {
        path="D:\\cms\\template"+path;

        return IOTemplateTypeUtil.readFile(path);
    }

    /**
     * 重写更新模板文件实现类
     * @param ftlhText
     * @return
     */
    @Override
    public int writeTemplateType(String ftlhText,String path) {
        String[] paths=path.split("/");
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH：mm：ss");//设置日期格式

        path="D:/cms/template"+"/"+paths[1]+"/"+paths[2]+"/"+paths[2]+df.format(new Date());
        int n=0;
        return IOTemplateTypeUtil.writeFile(ftlhText,path,paths[2])?1:0;

    }
}
